Field
The disclosure relates to ternary content-addressable memories (TCAMs), and specifically to increasing the visibility of TCAM cells during data writes.
Related Art
TCAMs are unique from traditional memory structures. Whereas conventional memory structures permit only two storage designations (1/0), TCAMs allow for a third: the “don't care” designation, often represented by an “x”. This third designation becomes particularly useful when seeking to identify matches and partial matches to an input value because a single input value can “match” multiple different entries in the TCAM.
In order to effect these designations, a particular TCAM entry is broken into two basic partitions: a key and a mask. The key contains a series of bits on which matches are performed. Thus, the key is often described as the “value” or “data value”. The mask, on the other hand, contains a series of bits that designate the bits of the key that must be matched to the corresponding bits of an input value in order to achieve a successful “match.” Thus, a mask of 1110 would require the first three bits of an input value to match the first three bits of the key. The “0” in the fourth position of the mask indicates a “don't care” for the fourth bit. For example, the system could determine the values to match regardless of whether their fourth bits match or differ. A key and its corresponding mask are both stored in association with a corresponding index value—the position of the key/mask within the stored list of key/mask pairs (e.g., entries).
In newer TCAM architectures, a “stacked” cell is used in order to optimize power and performance. In the stacked architecture, adjacent storage elements of the ternary cell are stacked over each other, as opposed to the traditional planar layout. In the stacked configuration, the stacked storage elements must be written or read over a single data line. As a result, a write operation of one of the storage elements generally occurs over a very long period, which can cause significant down time for the storage element.